package cn.iocoder.yudao.module.crm.dal.mysql.fieldconfig;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.crm.controller.admin.fieldconfig.vo.FieldConfigPageReqVO;
import cn.iocoder.yudao.module.crm.dal.dataobject.fieldconfig.FieldConfigDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 字段配置 Mapper
 *
 * @author 数创万维
 */
@Mapper
public interface FieldConfigMapper extends BaseMapperX<FieldConfigDO> {

    default PageResult<FieldConfigDO> selectPage(FieldConfigPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<FieldConfigDO>()
                .eqIfPresent(FieldConfigDO::getPageCode, reqVO.getPageCode())
                .likeIfPresent(FieldConfigDO::getFieldName, reqVO.getFieldName())
                .eqIfPresent(FieldConfigDO::getFieldProp, reqVO.getFieldProp())
                .eqIfPresent(FieldConfigDO::getSort, reqVO.getSort())
                .eqIfPresent(FieldConfigDO::getFieldType, reqVO.getFieldType())
                .eqIfPresent(FieldConfigDO::getOptions, reqVO.getOptions())
                .betweenIfPresent(FieldConfigDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(FieldConfigDO::getId));
    }

}